<script>
  // #ifdef APP-PLUS
  import {
    update
  } from "./utils/update-package.js";
  import addListenerPush from "@/utils/unipush.js"; // 推送监听
  // const shareinstall = uni.requireNativePlugin('shareinstall-plugin');; //引入插件唤醒APP
  import xinstall from "@/utils/xinstall.js"; // 启动
  // #endif
  var startforfirst = false;
  export default {
    globalData: {
      url: "",
      redirect: "",
    },
    onLaunch: function() {
      // #ifdef  MP-WEIXIN
      // 获取微信openid和sessionkey
      let _this = this;
      //微信新版本更新调用
      _this.checkForUpdate()
      //检测sessionkey是否过期
      // wx.checkSession({
      //   success() {
      //     //session_key 未过期，并且在本生命周期一直有效
      //     console.log('sessionkey未过期')
      //   },
      //   fail() {
      //     // session_key 已经失效，需要重新执行登录流程
      //     console.log('sessionkey过期')
      //     _this.my_login() //重新登录
      //   }
      // })
      // #endif
      // #ifdef APP-PLUS
      //启动图停留时间 设置2.4秒后主动关闭，最多设置6秒
      setTimeout(() => {
        plus.navigator.closeSplashscreen();
      }, 2000);

      plus.screen.lockOrientation("portrait-primary"); //锁定
      update(); // 检查更新

      addListenerPush(); // 监听消息推送
      console.log("执行了升级更新", plus.runtime.appid);

      // 唤醒APP,跳转指定页面
      // shareinstall.registerWakeUp(function(result) {
      //   result = JSON.parse(result)
      //   if (result.url) {
      //     getApp().globalData.url = decodeURIComponent(result.url)
      //   }
      // });
      // xinstall(true, () => {
      //   uni.$emit('xinstall');
      // })

      // #endif
      // #ifdef APP-PLUS
      xinstall(false, () => {
        setTimeout(() => {
          if (getApp().globalData.url) {
            console.log("getApp().global111111111111", getApp().globalData.url);
            uni.navigateTo({
              url: getApp().globalData.url,
            });
            getApp().globalData.url = "";
          }
          startforfirst = true;
        }, 1000);
      });
      // #endif

      // --------------websocket相关------------
      // 打开socket监听
      uni.onSocketOpen(() => {
        console.log("WebSocket连接已打开！");
        this.$store.commit("setConnectSocket", true);
      });
      // 监听WebSocket错误
      uni.onSocketError((res) => {
        console.log("WebSocket连接错误", res);
      });
      // 接收消息
      uni.onSocketMessage((res) => {
        console.log("收到服务器内容：" + res.data);
        uni.$emit("auotWashFinish");
      });
      // 关闭socket监听
      uni.onSocketClose(() => {
        console.log("WebSocket 已关闭！");
        this.$store.commit("setConnectSocket", false);
      });

      // 获取客服电话
      this.$api.jsonData
        .getServiceNumber()
        .then((res) => {
          this.$store.commit("setServiceNumber", {
            showNumber: res.data.helpphone,
            number: res.data.helpphone.replace(/\-/g, ""),
          });
        })
        .catch((err) => {
          console.log("获取客服电话异常", err);
        });
    },
    onShow: function() {
      // if (uni.getStorageSync('userInfoDetail')) {
      //   this.$store.commit('setUserInfoDetail', uni.getStorageSync('userInfoDetail'))
      // }

      // #ifdef APP-PLUS
      if (startforfirst) {
        xinstall(false, () => {
          if (getApp().globalData.url) {
            console.log("getApp().globalDa222222222222", getApp().globalData.url);
            uni.navigateTo({
              url: getApp().globalData.url,
            });
            getApp().globalData.url = "";
          }
        });
      }

      // 判断启动方式
      console.log("plus.runtime.launcher: " + plus.runtime.launcher);
      console.log("plus.runtime.arguments: " + plus.runtime.arguments);
      //获取传参
      var args = plus.runtime.arguments;
      if (args) {
        // 处理args参数，如打开新页面等
        // 截取传参
        let newa = args.split("'");
        // console.log("argsnewa: " + newa);
        uni.navigateTo({
          url: newa[1],
        });
      }
      // #endif

      // #ifdef APP-PLUS-NVUE
      // 字体图标nvue zs
      const dom = weex.requireModule("dom");
      dom.addRule("fontFace", {
        fontFamily: "iconfont",
        src: "url('/static/icons/iconfont.ttf')",
      });
      // #endif
    },
    onHide: function() {
      // #ifdef APP-PLUS-NVUE
      plus.runtime.arguments = "";
      plus.runtime.arguments = null;
      console.log("this.argsurl", this.argsurl);
      // #endif
    },
    methods: {
      // 更新新版本方法
      checkForUpdate: function() {
        const updateManager = wx.getUpdateManager()
        updateManager.onUpdateReady(function() {
          uni.showModal({
            title: '更新提示',
            content: '新版本已经准备好，立即重启应用？',
            showCancel: false,
            success: function(res) {
              if (res.confirm) {
                updateManager.applyUpdate()
              }
            }
          })
        })
        updateManager.onUpdateFailed(function() {})
      },
      //获取微信openid和sessionkey
      my_login: function() {
        let _this = this;
        wx.login({
          success(e) {
            _this.$api.user.wxLogin({
                code: e.code,
              }).then((res) => {
                console.log('res微信登录返回', res)
                var _wxdata = JSON.parse(res.data.msg);
                _wxdata.unionid = res.data.unionid;
                uni.setStorageSync("wxData", _wxdata);
              });
          },
        });
      },
    }
  };
</script>

<style lang="scss">
  /* #ifndef APP-PLUS-NVUE */
  @import "uview-ui/index.scss";

  @import url("/static/icons/iconfont.css");
  @import url("/static/icons/iconfont-weapp.css");

  @import "./static/css/style.scss";
  @import "./static/css/uview-ui.scss";

  /* #endif */

  /* 解决头条小程序组件内引入字体不生效的问题 */
  /* #ifdef MP-TOUTIAO */
  @font-face {
    font-family: uniicons;
    src: url("/static/uni.ttf");
  }

  /* #endif */

  /* #ifndef APP-PLUS-NVUE */
  .icon {
    width: 1em;
    height: 1em;
    vertical-align: -0.15em;
    fill: currentColor;
    overflow: hidden;
  }

  /* #endif */

  // 黄底黑字圆角大按钮
  .btn-primary {
    background: linear-gradient(0deg, #fbd220, #ffe23e);
    color: #343434;
    //border-color: #FBD321;
    border-radius: 44rpx;
    width: 650rpx;
    height: 88rpx;
    line-height: 88rpx;
  }

  // 灰底黑字圆角大按钮
  .btn-disable {
    background-color: #eee;
    color: #343434;
    border-color: #eee;
    border-radius: 44rpx;
    width: 650rpx;
    height: 88rpx;
    //line-height: 88rpx;
  }
</style>
